#pragma once

#include "Vertex3f.h"

enum ToolMode
{
	Selecting,
	Vertex,
	XFlattenning,
	YFlattenning,
	ZFlattenning,
	Tessellation,
	Navigation,
	EditingProperties
};

class gfxTool
{
public:
	gfxTool(float radius, float neighborsLength, float growthRate,
		ToolMode primaryMode, ToolMode secondaryMode);
	~gfxTool(void);

	void SetPosition(float x, float y, float z);
	void SetPosition(Vertex3f *newPosition);

	void SwitchModes();
	void ColorSelectedArea();
	void FreeSelectedAreaInformation();

	float Radius, NeighborsLength, GrowthRate;
	Vertex3f *Position;
	Vertex3f *SelectedVertex;
	QList<Vertex3f*> *Area;
	QList<float> *Distances;
	QList<Vertex3f*> *CenterParents;
	QList<Vertex3f*> *CenterIndices;
	ToolMode PrimaryMode, SecondaryMode;
	bool HasSelection;
};
